package main.java.juego;

import main.java.fases.Blitzkrieg;
import main.java.fases.DefensaAliada;
import main.java.fases.LogisticaAlemana;
import main.java.fases.PlanificacionAlemana;
import main.java.interfaces.InterfazUsuario;
import main.java.fases.*;
import main.java.interfaces.*;


public class Juego {
	
	private Baraja partida;
	private boolean finDePartida;
	private InterfazUsuario interfaz;
 
	public Juego(InterfazUsuario interfaz){
		partida = new BarajaImpl();
		finDePartida = false;
		this.interfaz=interfaz;
		interfaz.setPartida(partida);
	}

	public void jugar(){
		while(!finDePartida){
			Turno turnoActual = TurnoImpl.create(partida);
		
			DefensaAliada fase1 = DefensaAliada.create(turnoActual);
			interfaz.ejecutarFase1(fase1);
		
			LogisticaAlemana fase2 = LogisticaAlemana.create(turnoActual);
			interfaz.ejecutarFase2(fase2);
		
			PlanificacionAlemana fase3 = PlanificacionAlemana.create(turnoActual);
			interfaz.ejecutarFase3(fase3);
		
			Blitzkrieg fase4 = Blitzkrieg.create(turnoActual);
			interfaz.ejecutarFase4(fase4);
	
			finDePartida=partida.dameRetrasos()>=7 || partida.mazoAliadoVacio() || partida.mazoAlemanVacio();
		}	
		interfaz.devuelveResultadoPartida();
	}
}
